#pragma once
#include "InputSniffer.h"
#include "Command.h"
#include "IRunnable.h"

namespace bs
{
	class InputManager : public InputSniffer, public ICommandProcessor, public IRunnable
	{
		DECLARE_COMMAND_MAP()

	public:
		InputManager(HWND hwnd);
		~InputManager();

		virtual void Run(int id, size_t time, size_t frames, size_t elapse, void* userData);

	private:
		void OnKeyStatus(const Command& cmd);
		void OnCursorScrPos(const Command& cmd);
		void OnCursorWinPos(const Command& cmd);
	};

}
